<div class="well well-small api-menu">
	<?php $this->widget('ApiMenuWidget'); ?>
</div>
<?php
$this->beginWidget('bootstrap.widgets.TbBox', array(
	'title' => false,
	'htmlOptions' => array('class' => 'api-doc'),
));
?>

<h2>普通搜索</h2>
<p>根据查询条件获取匹配数据。</p>

<h4>URL</h4>
<p><code><?php echo $this->createApiUrl(); ?></code></p>

<h4>请求、响应方式</h4>
<p>POST 请求，JSON 响应。</p>

<h4>请求参数</h4>
<table class="table table-bordered">
	<tr><th>名称</th><th>必填</th><th>类型/范围</th><th>说明</th></tr>
	<tr>
		<td>access_token</td>
		<td>true</td>
		<td>string</td>
		<td>在登录授权后得到，参见<?php echo CHtml::link('如何登入', array('api/login')); ?>。</td>
	</tr>
    <tr>
        <td>project</td>
        <td>true</td>
        <td>string</td>
        <td>项目名称。</td>
    </tr>
    <tr>
        <td>query</td>
        <td>true</td>
        <td>string</td>
        <td>查询语句</td>
    </tr>
    <tr>
        <td>fuzzy</td>
        <td>false</td>
        <td>string</td>
        <td>是否开启模糊搜索，值为 yes|no，默认为 no。</td>
    </tr>
    <tr>
        <td>cut_percent</td>
        <td>false</td>
        <td>int</td>
        <td>剔除匹配百分比低于此值的文档，值范围 0-100，默认为 0。</td>
    </tr>
    <tr>
        <td>cut_weight</td>
        <td>false</td>
        <td>float</td>
        <td>剔除权重低于此值的文档，值范围 0.1-25.5，默认 0 不剔除。</td>
    </tr>
    <tr>
        <td>synonym</td>
        <td>false</td>
        <td>string</td>
        <td>是否开启同义词搜索，值为 yes|no，默认为 no。</td>
    </tr>
    <tr>
        <td>synonym_scale</td>
        <td>false</td>
        <td>float</td>
        <td>同义词权重比例，值为 0.01-2.55，默认为 1。</td>
    </tr>
    <tr>
        <td>range</td>
        <td>false</td>
        <td>string</td>
        <td>区间搜索 <em>field:from..to</em> 多个区间之间用逗号分开，<br /><em>from</em> 或 <em>to</em> 可省略其中之一。</td>
    </tr>
    <tr>
        <td>scws_multi</td>
        <td>false</td>
        <td>int</td>
        <td>scws 复合分词等级，默认为 3，可选值 0-15。</td>
    </tr>
    <tr>
        <td>collapse</td>
        <td>false</td>
        <td>string</td>
        <td>折叠搜索字段，该字段值相同的数据只返回 <em>collapse_count</em> 条。</td>
    </tr>
    <tr>
        <td>collapse_count</td>
        <td>false</td>
        <td>int</td>
        <td>折叠搜索时，最多返回条数，默认为 1。</td>
    </tr>
    <tr>
        <td>sort</td>
        <td>false</td>
        <td>string</td>
        <td>排序字段，多个之间用逗号分隔，需要正序排列时在字段名前面加上 <code>+</code> 号，<br />默认采用相关度排序。</td>
    </tr>
    <tr>
        <td>limit</td>
        <td>false</td>
        <td>int</td>
        <td>返回结果最大数量，默认为 10，最多 100。</td>
    </tr>
    <tr>
        <td>offset</td>
        <td>false</td>
        <td>int</td>
        <td>返回结果偏移值，默认为 0。</td>
    </tr>
    <tr>
        <td>related</td>
        <td>false</td>
        <td>string</td>
        <td>是否在附加相关搜索，值为 yes|no，默认为 no。</td>
    </tr>
    <tr>
        <td>corrected</td>
        <td>false</td>
        <td>string</td>
        <td>是否在附加搜索纠错，值为 yes|no，默认为 no。</td>
    </tr>
    <tr>
        <td>highlight</td>
        <td>false</td>
        <td>string</td>
        <td>需要打上高标标签 <code>em</code> 的字段，多个字段用逗号分隔，默认：无。</td>
    </tr>
</table>

<h4>注意事项</h4>
<p>返回文档还包含 _percent, _rank, _weight 等值，折叠搜索实际数量在 _ccount 字段。</p>

<h4>成功返回</h4>
<p>
	<pre>
{ 
  "result":true,
  "total":19999,
  "count":300,
  "docs":[
    {field1:"value1",field2:"value2"},
    {field1:"value1",field2:"value2"}
  ],
  "related":[xxx,yyy,zzz],
  "corrected":[xxx,yy]
}
</pre>
</p>

<h4>结果说明</h4>
<table class="table table-bordered">
	<tr><th>名称</th><th>含义说明</th></tr>
	<tr>
		<td>result</td>
		<td>操作是否成功。</td>
	</tr>
	<tr>
		<td>total</td>
		<td>索引库内数据总量。</td>
	</tr>	
	<tr>
		<td>count</td>
		<td>符合搜索条件的匹配估算数量。</td>
	</tr>
	<tr>
		<td>docs</td>
		<td>符合搜索条件的文档及属性。</td>
	</tr>
	<tr>
		<td>related</td>
		<td>相关搜索词，需要提供 related 参数。</td>
	</tr>
	<tr>
		<td>corrected</td>
		<td>修正搜索词，需要提供 corrected 参数。</td>
	</tr>
</table>

<h4>出错情况</h4>
<p>出错时 HTTP 的响应状态码为 200 以外的其它值，含义如下：</p>
<table class="table table-bordered">
	<tr><th>HTTP 状态</th><th>出错说明</th></tr>
	<tr>
		<td>500</td>
		<td>内部错误，通常是程序或数据库出错。</td>		
	</tr>
</table>

<?php $this->endWidget();?>
